{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project #4 Bezier curves（贝塞尔曲线）\n",
    "\n",
    "<!--- 你的相关信息放下面 --->\n",
    "\n",
    "- 姓名：张可循\n",
    "\n",
    "- 学号：20201050444\n",
    "\n",
    "- 邮箱：1215775970@qq.com\n",
    "\n",
    "<!--- 你的相关信息放上面 --->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction（项目介绍）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "贝塞尔曲线（Bezier curves）是插值（Interpolation）的一个非常重要的应用，可以用有限的坐标点表示多样的图形，大大增强了计算机的图形显示效果。\n",
    "\n",
    "本项目我们将利用贝塞尔曲线实现对简单的图形和字母的表示，最终的项目效果如下图所示。\n",
    "\n",
    "\n",
    "<img src = \"P4.png\" width=500>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Original image（给出原始图形）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--- 替换下面的图片链接为你的图片链接，可以是本地的也可以网络上的图片 --->\n",
    "# 不开心熊熊\n",
    "<img src = \"image.png\" width = 400>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Data extracted from image（提取原始数据）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将你提取的所有与图片相关的数据填入下面的python列表\n",
    "\n",
    "PositionOfImage = [\n",
    "    [-6450,9358, -7975,9260, -7905,5241, -6450,4774],\n",
    "    [-6450,4774, -7084,3170, -7375,1303, -6969,-373],# 一行对应四个坐标，需要八个数值 \n",
    "    [-6969,-373, -7514,-1991, -7123,-3892, -6492,-5469],# 上面根据实际需要增加行数\n",
    "    [-6492,-5469, -6145,-4735, -6234,-3875, -6234,-3072],\n",
    "    [-6234,-3072, -5597,-4339, -4955,-5613, -3794,-5731],\n",
    "    [-3794,-5731, -3970,-5197, -4182,-4677, -3823,-4738],\n",
    "    [-3823,-4738, -3408,-4803, -3130,-5319, -2711,-5329],\n",
    "    [-2711,-5329, -2381,-5374, -1692,-4813, -1981,-4649],\n",
    "    [-1981,-4649, -1254,-4944, -526,-5239, 200,-5534],\n",
    "    [200,-5534, 367,-5564, 533,-5595, 682,-5534],\n",
    "    [682,-5534, 1967,-5039, 3251,-4544, 4536,-4049],\n",
    "    [4536,-4049, 4740,-3863, 4888,-3744, 5147,-3491],\n",
    "    [5147,-3491, 5086,-4413, 5025,-5334, 4964,-6256],\n",
    "    [4964,-6256, 5879,-5401, 6795,-4547, 6794,-3422],\n",
    "    [6794,-3422, 6834,-4131, 6873,-4839, 6912,-5548],\n",
    "    [6912,-5548, 7803,-2374, 8694,799, 8152,3914],\n",
    "    [8152,3914, 8088,3846, 8002,3799, 7914,3765],\n",
    "    [7914,3765, 7970,3964, 8025,4163, 7824,4391],\n",
    "    [7612,4020, 8490,5202, 8465,7325, 7569,8551],\n",
    "    [7569,8551, 7005,9361, 6442, 10171, 5560,10386],\n",
    "    [5560,10386, 4389,10283, 4138,8032, 4395,6802],\n",
    "    [4324,8458, 3109,9150, 1720,9695, 345,9610],\n",
    "    [345,9610, -1216,9610, -3337,8973, -3832,7493],\n",
    "    [-3832,7493, -3832,7846, -4100,8183, -4377,8402],\n",
    "    [-4377,8402, -4832,8973, -5708,9524, -6450,9359], #这里就是熊熊的外部轮廓\n",
    "    [-4728,2396, -4728,3655, -4261,4857, -3795,6058],\n",
    "    [-4000,5280, -3456,6234,  -2936,7534, -1869,7791],\n",
    "    [-1869,7791, -1531,7560, -1174,7718, -803,7791],\n",
    "    [-803,7791, 883,8310, 2415,6883, 3947,5456],\n",
    "    [3947,5456, 4016,5374, 3889,5150, 3785,5177],\n",
    "    [3785,5177, 1491,6293, -1789,6656, -3868,5177],\n",
    "    [-3868,5177, -3911,5143, -4014,5226, -4000,5280],\n",
    "    [427,5963, 1114,4093, 557,2046, 0,0],\n",
    "    [0,0, -187,702, -487,1398, -489,2126],\n",
    "    [-487,2126, -948,806, -1407,514, -2547,-1063],\n",
    "    [-2547,-1063, -2432,-844, -2323,-577, -2387,-337],\n",
    "    [-2387,-337, -2725,-836, -3286,-1192, -3855,-1392],\n",
    "    [-3855,-1392, -3805,-1222, -3755,-1053, -3705,-884],\n",
    "    [-3705,-884, -3952,-1116, -4192,-1356, -4424,-1603],\n",
    "    [-4359,-1092, -4437, -1671, -4532,-2288, -4359,-2846],\n",
    "    [-4359,-2846, -3869,-3754, -2902,-4275, -2026,-4653],\n",
    "    [513,-3903, 771,-3654, 1126,-3815, 1530,-3995],\n",
    "    [724,4590, 2291,3412, 3808,2167, 5300,896],\n",
    "    [4577,1508, 3521,1427, 2450,1366, 1402,1513],\n",
    "    [1402,1513, 1283,1527, 1156,1600, 1100,1705],\n",
    "    [5067,1094, 5081,-553, 5110,-2646, 5129,-3507],\n",
    "    [5088,-864, 4593,-1168, 3944,-1265, 3396,-1362],\n",
    "    [3396,-1362, 3396,-1362, 1599,-1315, 1883,-866],\n",
    "    [3891,-67, 3863,-318, 3280,-139, 3147,75], #眼睛\n",
    "    [3147,75, 2974,286, 3308,1016, 3365,866],\n",
    "    [3565,866, 3727,806, 3939,680, 3939,507],\n",
    "    [3939,507, 3939,315, 3936,120, 3900,-96]\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将三个字母对应的数据填入下面的python列表\n",
    "PositionOfLetter_1 =[\n",
    "    [0,-15000, 805,1129-15000, 1611,2258-15000, 2416,3387-15000],# 一行对应四个坐标，需要八个数值\n",
    "    [2416,3387-15000, 1611,3387-15000, 805,3387-15000, 0,3387-15000],\n",
    "    [0,3387-15000, 0,3554-15000, 0,3721-15000, 0,3887-15000],\n",
    "    [0,3887-15000, 1086,3887-15000, 2172,3887-15000, 3253,3846-15000],\n",
    "    [3253,3846-15000, 2111,2258-15000, 1305,1129-15000, 814,393-15000],\n",
    "    [814,393-15000, 1628,393-15000, 2443,393-15000, 3257,393-15000],\n",
    "    [3257,393-15000, 3257,262-15000, 3257,131-15000, 3257,0-15000],\n",
    "    [3257,0-15000, 2172,0-15000, 1086,0-15000, 0,0-15000],\n",
    "    # 上面根据实际需要增加行数\n",
    "]\n",
    "   \n",
    "PositionOfLetter_2 =[\n",
    "    [4790,3887-15000 ,4957,3887-15000, 5124,3887-15000, 5290,3887-15000],# 一行对应四个坐标，需要八个数值\n",
    "    [5290,3887-15000, 5290,3342-15000, 5290,2796-15000, 5290,2250-15000],\n",
    "    [5290,2250-15000, 5896,2796-15000, 6648,3342-15000, 7027,3887-15000],\n",
    "    [7027,3887-15000, 7193,3887-15000, 7360,3887-15000, 7527,3887-15000],\n",
    "    [7527,3887-15000, 6948,3342-15000, 6369,2749-15000, 5790,2250-15000],\n",
    "    [5790,2250-15000, 6469,1500-15000, 6948,750-15000, 7627,0-15000],\n",
    "    [7627,0-15000, 7360,0-15000, 7193,0-15000, 7027,0-15000],\n",
    "    [7027,0-15000, 6577,583-15000, 6126,1167-15000, 5676,1750-15000],\n",
    "    [5676,1750-15000, 5548,1750-15000, 5460,1796-15000, 5290,1750-15000],\n",
    "    [5290,1750-15000, 5290,1167-15000, 5290,583-15000, 5290,0-15000],\n",
    "    [5290,0-15000, 5124,0-15000, 4957,0-15000, 4790,0-15000],\n",
    "    [4790,0-15000, 4790,1296-15000, 4790,2591-15000, 4790,3997-15000],\n",
    "    # 上面根据实际需要增加行数\n",
    "]\n",
    "\n",
    "PositionOfLetter_3 =[\n",
    "    [9060,3887-15000, 9226,3887-15000, 9393,3887-15000, 9496,3958-15000],# 一行对应四个坐标，需要八个数值\n",
    "    [9496,3958-15000, 10048,3334-15000, 10537,2780-15000, 11025,2227-15000],\n",
    "    [11025,2227-15000, 11513,2780-15000, 12002,3334-15000, 12490, 3887-15000],\n",
    "    [12490,3887-15000, 12657,3887-15000, 12823,3887-15000, 12990,3887-15000],\n",
    "    [12990,3887-15000, 12418,3239-15000, 11847,2591-15000, 11275,1944-15000],\n",
    "    [11275,1944-15000, 11847,1296-15000, 12418,648-15000, 12990,0-15000],\n",
    "    [12990,0-15000, 12823,0-15000, 12657,0-15000, 12490,0-15000],\n",
    "    [12490,0-15000, 12002,553-15000, 11513,1107-15000, 11025,1660-15000],\n",
    "    [11025,1660-15000, 10537,1107-15000, 10047,553-15000, 9560,0-15000],\n",
    "    [9560,0-15000, 9393,0-15000, 9226,0-15000, 9060,0-15000],\n",
    "    [9060,0-15000, 9632,648-15000, 10203,1296-15000, 10775,1944-15000],\n",
    "    [10775,1944-15000, 10203,2591-15000, 9632,3239-15000, 9060,3887-15000],\n",
    "    # 上面根据实际需要增加行数\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Python function for Bezier curves（贝塞尔曲线的python函数）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 计算某一个t对应的贝塞尔曲线的坐标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 三阶贝塞尔函数的python表示\n",
    "def bezier3(t, P):\n",
    "    # 从P中提取四个坐标的数据\n",
    "    P0 = P[0]\n",
    "    P1 = P[1]\n",
    "    P2 = P[2]\n",
    "    P3 = P[3]\n",
    "    \n",
    "    # 逐步构造贝塞尔曲线的坐标\n",
    "    A = (1 - t) * P0 + t * P1\n",
    "    B = (1 - t) * P1 + t * P2\n",
    "    C = (1 - t) * P2 + t * P3\n",
    "    \n",
    "    D = (1 - t) * A + t * B\n",
    "    E = (1 - t) * B + t * C\n",
    "    \n",
    "    return (1 - t) * D + t * E"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 三阶贝塞尔函数的python表示\n",
    "# 上面的python函数，可以简化成一个比较简单的形式\n",
    "# 即把对应的A、B、C、D、E替换到最后的return后面的公式\n",
    "def bezier3v2(t, P):\n",
    "    # 从P中提取四个坐标的数据\n",
    "    # P0 = P[0]\n",
    "    # P1 = P[1]\n",
    "    # P2 = P[2]\n",
    "    # P3 = P[3]\n",
    "    \n",
    "    # 逐步构造贝塞尔曲线的坐标\n",
    "    # A = (1 - t) * P0 + t * P1\n",
    "    # B = (1 - t) * P1 + t * P2\n",
    "    # C = (1 - t) * P2 + t * P3\n",
    "    \n",
    "    # D = (1 - t) * A + t * B = (1 - t) * (1 - t) * P0 + (1 - t) * t * P1 + t * (1 - t) * P1 + t * t * P2\n",
    "    # E = (1 - t) * B + t * C = (1 - t) * (1 - t) * P1 + (1 - t) * t * P2 + t * (1 - t) * P2 + t * t * P3\n",
    "    \n",
    "    # (1 - t) * D + t * E = (1 - t)^3 * P0 + 3 * (1 - t)^2 * t * P1 + 3 * (1 - t) * t^2 * P2 + t^3 * P3\n",
    "    \n",
    "    return (1 - t)**3 * P[0] + 3 * (1 - t)**2 * t * P[1] + 3 * (1 - t) * t**2 * P[2] + t**3 * P[3]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 验证上面的函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入必要的库\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 给P赋初值，此处用一个具有8个数字的python列表\n",
    "P = [0, 0, 1, 1, 2, 1, 3, 0]\n",
    "\n",
    "# 将P用numpy转换成numpy数组，并重新修改其维度为4行2列\n",
    "P = np.array(P).reshape((4,2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.6 , 0.48])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 验证bezier4函数是否能够正常运行\n",
    "bezier3(0.2, P)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.6 , 0.48])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 验证bezier4v2函数是否能够正常运行\n",
    "bezier3v2(0.2, P)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看出，两个函数的返回结果一致"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 任意阶贝塞尔曲线计算函数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以用两种办法实现任意阶贝塞尔曲线的计算函数，一种是采用两个循环，另一种是采用函数递归。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 循环嵌套\n",
    "def bezierN_v1(t, P):\n",
    "    n = P.shape[0]\n",
    "    for i in range(n - 1):\n",
    "        Ptemp = np.zeros((P.shape[0] - 1, 2))\n",
    "        for j in range(P.shape[0] - 1):\n",
    "            Ptemp[j] = (1 - t) * P[j] + t * P[j + 1]\n",
    "        P = Ptemp\n",
    "    return P[0] # 这里的[0]是为了将1行2列的二维数组，转换成一维向量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.6 , 0.48])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 验证循环嵌套方法\n",
    "\n",
    "bezierN_v1(0.2, P)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可见结果与三阶的计算一致"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 函数递归\n",
    "# 这个函数的关键在于第二个return对函数本身的调用\n",
    "# 以及P[:-1]和P[1:]的用法\n",
    "\n",
    "def bezierN_v2(t, P):\n",
    "    if P.shape[0] == 2:\n",
    "        return (1 - t) * P[0] + t * P[1]\n",
    "    return bezierN_v2(t, (1 - t) * P[:-1] + t * P[1:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.6 , 0.48])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 验证函数递归法\n",
    "bezierN_v2(0.2, P)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "递归代码少，计算结果也一致，体现了现代编程思想。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Python function for route calculation（完整的贝塞尔曲线路径计算） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 定义路径计算函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def route(P, bezier = bezier3v2):\n",
    "    # 上面传入了一个bezier参数，这里是计划采用的bezier计算函数的名称\n",
    "    # 可以是我们上面写的任意一个贝塞尔python函数，可以根据各自的情况自由选择\n",
    "    # 这里我们默认采用bezier3v2\n",
    "    \n",
    "    # 定义一个tList来承载所有的t\n",
    "    numberOfPoints = 101\n",
    "    tList = np.linspace(0, 1, 101)\n",
    "    \n",
    "    # 初始化一个数组来承载所有的路径坐标\n",
    "    arrP = np.zeros((numberOfPoints, 2))\n",
    "    \n",
    "    # 开始计算\n",
    "    index = 0\n",
    "    for t in tList:\n",
    "        arrP[index, :] = bezier(t, P)\n",
    "        index += 1\n",
    "        \n",
    "    return arrP"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 验证路径计算函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调研route函数进行计算\n",
    "# 注意这里P的数据格式需要为转换之后的4行2列\n",
    "arrP = route(P, bezier = bezier3v2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x28342253ca0>]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(arrP[:, 0], arrP[:, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Draw image and letters（画图以及画字符）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-16000.0, 16000.0)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmsAAAI/CAYAAAAoU54FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACMv0lEQVR4nO3dd3iTVfsH8O+hUHbZeyMIgiBKZS9BARVFFF9x4d6+7r1FHOir4gJFUUEUxQmC7I2yQYbMspG9N4X2/P74Jr+WNl1Zz5Pk+7muXE9JniR309Dcvc859zHWWoiIiIiIO+VzOgARERERyZqSNREREREXU7ImIiIi4mJK1kRERERcTMmaiIiIiIspWRMRERFxsfxOBxAqZcuWtTVr1nQ6DBEREZEcLVy4cI+1tpyv26I2WatZsyYWLFjgdBgiIiIiOTLGbMrqNg2DioiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4mJI1ERERERdTsiYiIiLiYkFJ1owxXxpjdhljlqe77hVjzL/GmL89l8vS3fasMSbJGLPaGNMl3fVNjTHLPLd9aIwxnusLGmN+8Fw/1xhTMxhxi4iIiLhdsCprXwPo6uP69621TTyXPwDAGNMAQC8ADT33GWCMifOcPxDA3QDqei7ex7wDwH5rbR0A7wPoF6S4RURERFwtKMmatXYGgH25PL07gO+ttSettRsAJAFoZoypBCDBWjvbWmsBDAVwVbr7DPF8/ROATt6qm4iIiEg0C/WctQeNMUs9w6SlPNdVAbAl3TlbPddV8Xyd8foz7mOtPQ3gIIAyoQxcRERExA1CmawNBHAWgCYAtgN413O9r4qYzeb67O5zBmPM3caYBcaYBbt3785zwCIiIiJuE7JkzVq701qbYq1NBfA5gGaem7YCqJbu1KoAtnmur+rj+jPuY4zJD6AEfAy7WmsHWWsTrbWJ5cqVC+a3IyIiIuKIkCVrnjloXj0AeFeKjgLQy7PCsxa4kGCetXY7gMPGmBae+Wi9AYxMd59bPF/3BDDFM69NREREJKrlD8aDGGOGA+gAoKwxZiuAlwF0MMY0AYcrNwK4BwCstf8YY0YAWAHgNIAHrLUpnoe6D1xZWhjAWM8FAAYD+MYYkwRW1HoFI24RERERtzPRWqBKTEy0CxYscDoMERERkRwZYxZaaxN93aYdDERERERcTMmaiIiIiIspWRMRERFxMSVrIiIiIi6mZE1ERETExZSsiYiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4mJI1ERERERdTsiYiIiLiYkrWRERERFxMyZqIiIiIiylZExEREXExJWsiIiIiLqZkTURERMTFlKyJiIiIuJiSNREREREXU7ImIiIi4mJK1kRERERcTMmaiIiIiIspWRMRERFxMSVrIiIiIi6mZE1ERETExZSsiYiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4mJI1ERERERdTsiYiIiLiYkrWRERERFxMyZqIiIiIiylZExEREXExJWsiIiIiLqZkTURERMTFlKyJiIiIuJiSNREREREXU7ImIiIi4mJK1kRERERcTMmaiIiIiIspWRMRERFxMSVrIiIiIi6mZE1ERETExZSsiYiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4mJI1ERERERdTsiYiIiLiYkrWRERERFxMyZqIiIiIiylZExEREXExJWsiIiIiLqZkTURERMTFlKyJiIiIuJiSNREREREXU7ImIiIi4mJK1kREJDJYC6xdC3z3HXDihNPRiIRNfqcDEBERydKBA8BPPwGjRwN//gns2cPrS5YELrsM6NGDxyJFnIxSJKSUrImIiPts3w688QYweDBw/DhQsyZwxRVA7dpM2HbuBCZMYJWteHHg+uuBBx4AGjd2OnKRoFOyJiIi7pGaCnz8MfDcc8DJk0Dv3sB99wFNmwLGnHluSgowfTowZAjwzTfAoEFAly7ASy8BrVo5E79ICARlzpox5ktjzC5jzPJ015U2xkw0xqz1HEulu+1ZY0ySMWa1MaZLuuubGmOWeW770Bj+zzTGFDTG/OC5fq4xpmYw4hYRERfZvx/o1g14+GGgXTtg1SpW1hITMydqABAXB3TsyGRt61ZW4hYtAlq3Bq68Eli9Ovzfg0gIBGuBwdcAuma47hkAk621dQFM9vwbxpgGAHoB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sRZ45hn28rvrLr5/g1mlPHWKVTVvzzWRMFGyJiLZO30aGDcO+PZbYPRo4MgRfgA2aACcdx6b48bHAytWcDsnkWDbvZtNpD/8kAsGfLGWW6n178+h/I8/1nCyRI3skrX84Q5GRFwof35W07p14xDpX39xQ/D58znct20bz9u+nTsViARbTrsXpKQA998PDBoEPPww8P777lxFLBICStZE5EwFC3ID9YsuSrtu+3YOkypRk1DJLlk7dQq49Vbgu++AZ58FXn9diZrEFCVrIpKzSpV4EQmVfft4zDjH7/hx7uv6++9cUPDss+GPTcRhStZERMR5viprhw4B3btzSP6TTzgMKhKDlKyJiIjzvMmat7K2axdw6aXA0qXAsGHADTc4F5uIw5SsiYiI87zDoKVKARs3smHzli1sKnzZZY6GJuI0JWsiIuK8/fu5y8Pq1UzUjh0DJk4EWrd2OjIRxylZExER5+3bx2StbVv28ps5k1udiQjUTVBERJy3ciUb45Yrxz5/StRE/p8qayIi4ixrOfxZtCjw559M2ETk/ylZExERZxnDvVVTUpSoifigZE1ERJxXpozTEYi4luasiYiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4mJI1ERERERdTsiYiIiLiYkrWRERERFxMyZqIiIiIiylZExEREXExJWsiIiIiLqZkTURERMTFlKyJiIiIuJiSNREREREXU7ImIiIi4mJK1kRERERcTMmaiIiIiIspWRMRERFxMSVrIiIiIi6mZE1ERETExZSsiYiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4mJI1ERERERdTsiYiIiLiYkrWRERERFxMyZqIiIiIiylZExEREXExJWsiIiIiLqZkTURERMTFlKyJiIiIuJiSNREREREXU7ImIiIi4mJK1kRERERcTMmaiIiIiIspWRMRERFxMSVrIiIiIi6mZE1ERETExZSsiYiIiLiYkjURERERF1OyJiIiIuJiStZEREREXEzJmoiIiIiLKVkTERERcTElayIiIiIupmRNRERExMWUrImIiIi4WEDJmjHmWmPMP8aYVGNMYobbnjXGJBlj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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10, 10)) # 新建一个10英寸 x 10英寸的画布\n",
    "\n",
    "# 逐个画出图像的贝塞尔曲线\n",
    "for P in PositionOfImage:\n",
    "    P = np.array(P).reshape((4, 2))\n",
    "    arrP = route(P)\n",
    "    plt.plot(arrP[:, 0], arrP[:, 1], 'r-')\n",
    "\n",
    "# 画出第1个字母的贝塞尔曲线\n",
    "for P in PositionOfLetter_1:\n",
    "    P = np.array(P).reshape((4, 2))\n",
    "    arrP = route(P)\n",
    "    plt.plot(arrP[:, 0], arrP[:, 1], 'r-')\n",
    "    \n",
    "# 画出第2个字母的贝塞尔曲线\n",
    "for P in PositionOfLetter_2:\n",
    "    P = np.array(P).reshape((4, 2))\n",
    "    arrP = route(P)\n",
    "    plt.plot(arrP[:, 0], arrP[:, 1], 'r-')\n",
    "\n",
    "# 画出第3个字母的贝塞尔曲线\n",
    "for P in PositionOfLetter_3:\n",
    "    P = np.array(P).reshape((4, 2))\n",
    "    arrP = route(P)\n",
    "    plt.plot(arrP[:, 0], arrP[:, 1], 'r-')\n",
    "    \n",
    "\n",
    "# 根据实际情况，对x轴和y轴的显示范围进行设置\n",
    "plt.xlim(-16000, 16000)\n",
    "plt.ylim(-16000, 16000)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. Share your experience（分享你的经验） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--- 相关信息放下面 --->\n",
    "\n",
    "\n",
    "\n",
    "<!--- 相关信息放上面 --->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "果真如彪哥所说，这个项目做起来很欢乐哈哈\n",
    "我采用了冉成林他们的方法，但是有所改进，这也是和他们一起讨论得出的。 \n",
    "如果用群里所说的方法，那样的工作量实际上会很大。但是如果通过UCS命令将原点移到图形的中心或者某个较好的参考点\n",
    "然后将图形尽可能地放大以减小误差，就能通过CAD鼠标直接捕捉到控制点并且直接读点坐标，这样能大幅减轻工作量并且也能保证准确性。\n",
    "即使这样我录入坐标还是花了接近四个小时，不过现在做完感觉还是很值得的。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
